// ███╗   ██╗ ██████╗ ████████╗██╗ ██████╗███████╗
// ████╗  ██║██╔═══██╗╚══██╔══╝██║██╔════╝██╔════╝
// ██╔██╗ ██║██║   ██║   ██║   ██║██║     █████╗  
// ██║╚██╗██║██║   ██║   ██║   ██║██║     ██╔══╝  
// ██║ ╚████║╚██████╔╝   ██║   ██║╚██████╗███████╗
// ╚═╝  ╚═══╝ ╚═════╝    ╚═╝   ╚═╝ ╚═════╝╚══════╝
// -----------------------------------------------
//  
// This file is automatically generated 
// Please do not edit these files manually
// Run the following in the root of the repos:
//
// 		*NIX 		:	./build.sh codegen
// 		Windows 	:	build.bat codegen
//
// -----------------------------------------------
// ReSharper disable RedundantUsingDirective
using System;
using System.Collections.Generic;
using System.Collections.Specialized;
using System.Linq;
using System.Text;
using System.Threading;
using System.Threading.Tasks;
using Elasticsearch.Net;
using Elastic.Transport;
using Elasticsearch.Net.Specification.AsyncSearchApi;
using Elasticsearch.Net.Specification.AutoscalingApi;
using Elasticsearch.Net.Specification.CatApi;
using Elasticsearch.Net.Specification.ClusterApi;
using Elasticsearch.Net.Specification.CrossClusterReplicationApi;
using Elasticsearch.Net.Specification.DanglingIndicesApi;
using Elasticsearch.Net.Specification.EnrichApi;
using Elasticsearch.Net.Specification.EqlApi;
using Elasticsearch.Net.Specification.GraphApi;
using Elasticsearch.Net.Specification.IndexLifecycleManagementApi;
using Elasticsearch.Net.Specification.IndicesApi;
using Elasticsearch.Net.Specification.IngestApi;
using Elasticsearch.Net.Specification.LicenseApi;
using Elasticsearch.Net.Specification.MachineLearningApi;
using Elasticsearch.Net.Specification.MigrationApi;
using Elasticsearch.Net.Specification.NodesApi;
using Elasticsearch.Net.Specification.RollupApi;
using Elasticsearch.Net.Specification.SearchableSnapshotsApi;
using Elasticsearch.Net.Specification.SecurityApi;
using Elasticsearch.Net.Specification.SnapshotApi;
using Elasticsearch.Net.Specification.SnapshotLifecycleManagementApi;
using Elasticsearch.Net.Specification.SqlApi;
using Elasticsearch.Net.Specification.TasksApi;
using Elasticsearch.Net.Specification.TransformApi;
using Elasticsearch.Net.Specification.WatcherApi;
using Elasticsearch.Net.Specification.XPackApi;

namespace Elasticsearch.Net
{
	///<summary>
	///Elasticsearch low level client
	///</summary>
	public partial interface IElasticLowLevelClient
	{
		///<summary>Async Search APIs</summary>
		LowLevelAsyncSearchNamespace AsyncSearch
		{
			get;
		}

		///<summary>Autoscaling APIs</summary>
		LowLevelAutoscalingNamespace Autoscaling
		{
			get;
		}

		///<summary>Cat APIs</summary>
		LowLevelCatNamespace Cat
		{
			get;
		}

		///<summary>Cluster APIs</summary>
		LowLevelClusterNamespace Cluster
		{
			get;
		}

		///<summary>Cross Cluster Replication APIs</summary>
		LowLevelCrossClusterReplicationNamespace CrossClusterReplication
		{
			get;
		}

		///<summary>Dangling Indices APIs</summary>
		LowLevelDanglingIndicesNamespace DanglingIndices
		{
			get;
		}

		///<summary>Enrich APIs</summary>
		LowLevelEnrichNamespace Enrich
		{
			get;
		}

		///<summary>Eql APIs</summary>
		LowLevelEqlNamespace Eql
		{
			get;
		}

		///<summary>Graph APIs</summary>
		LowLevelGraphNamespace Graph
		{
			get;
		}

		///<summary>Index Lifecycle Management APIs</summary>
		LowLevelIndexLifecycleManagementNamespace IndexLifecycleManagement
		{
			get;
		}

		///<summary>Indices APIs</summary>
		LowLevelIndicesNamespace Indices
		{
			get;
		}

		///<summary>Ingest APIs</summary>
		LowLevelIngestNamespace Ingest
		{
			get;
		}

		///<summary>License APIs</summary>
		LowLevelLicenseNamespace License
		{
			get;
		}

		///<summary>Machine Learning APIs</summary>
		LowLevelMachineLearningNamespace MachineLearning
		{
			get;
		}

		///<summary>Migration APIs</summary>
		LowLevelMigrationNamespace Migration
		{
			get;
		}

		///<summary>Nodes APIs</summary>
		LowLevelNodesNamespace Nodes
		{
			get;
		}

		///<summary>POST on /_bulk <para>https://www.elastic.co/guide/en/elasticsearch/reference/master/docs-bulk.html</para></summary>
		///<param name = "body">The operation definition and data (action-data pairs), separated by newlines</param>
		///<param name = "requestParameters">Request specific configuration such as querystring parameters &amp; request specific connection settings.</param>
		TResponse Bulk<TResponse>(PostData body, BulkRequestParameters requestParameters = null)
			where TResponse : class, ITransportResponse, new();
		///<summary>POST on /_bulk <para>https://www.elastic.co/guide/en/elasticsearch/reference/master/docs-bulk.html</para></summary>
		///<param name = "body">The operation definition and data (action-data pairs), separated by newlines</param>
		///<param name = "requestParameters">Request specific configuration such as querystring parameters &amp; request specific connection settings.</param>
		Task<TResponse> BulkAsync<TResponse>(PostData body, BulkRequestParameters requestParameters = null, CancellationToken ctx = default)
			where TResponse : class, ITransportResponse, new();
		///<summary>POST on /{index}/_bulk <para>https://www.elastic.co/guide/en/elasticsearch/reference/master/docs-bulk.html</para></summary>
		///<param name = "index">Default index for items which don&#x27;t provide one</param>
		///<param name = "body">The operation definition and data (action-data pairs), separated by newlines</param>
		///<param name = "requestParameters">Request specific configuration such as querystring parameters &amp; request specific connection settings.</param>
		TResponse Bulk<TResponse>(string index, PostData body, BulkRequestParameters requestParameters = null)
			where TResponse : class, ITransportResponse, new();
		///<summary>POST on /{index}/_bulk <para>https://www.elastic.co/guide/en/elasticsearch/reference/master/docs-bulk.html</para></summary>
		///<param name = "index">Default index for items which don&#x27;t provide one</param>
		///<param name = "body">The operation definition and data (action-data pairs), separated by newlines</param>
		///<param name = "requestParameters">Request specific configuration such as querystring parameters &amp; request specific connection settings.</param>
		Task<TResponse> BulkAsync<TResponse>(string index, PostData body, BulkRequestParameters requestParameters = null, CancellationToken ctx = default)
			where TResponse : class, ITransportResponse, new();
		///<summary>POST on /{index}/{type}/_bulk <para>https://www.elastic.co/guide/en/elasticsearch/reference/master/docs-bulk.html</para></summary>
		///<param name = "index">Default index for items which don&#x27;t provide one</param>
		///<param name = "type">Default document type for items which don&#x27;t provide one</param>
		///<param name = "body">The operation definition and data (action-data pairs), separated by newlines</param>
		///<param name = "requestParameters">Request specific configuration such as querystring parameters &amp; request specific connection settings.</param>
		TResponse BulkUsingType<TResponse>(string index, string type, PostData body, BulkRequestParameters requestParameters = null)
			where TResponse : class, ITransportResponse, new();
		///<summary>POST on /{index}/{type}/_bulk <para>https://www.elastic.co/guide/en/elasticsearch/reference/master/docs-bulk.html</para></summary>
		///<param name = "index">Default index for items which don&#x27;t provide one</param>
		///<param name = "type">Default document type for items which don&#x27;t provide one</param>
		///<param name = "body">The operation definition and data (action-data pairs), separated by newlines</param>
		///<param name = "requestParameters">Request specific configuration such as querystring parameters &amp; request specific connection settings.</param>
		Task<TResponse> BulkUsingTypeAsync<TResponse>(string index, string type, PostData body, BulkRequestParameters requestParameters = null, CancellationToken ctx = default)
			where TResponse : class, ITransportResponse, new();
		///<summary>DELETE on /_search/scroll <para>https://www.elastic.co/guide/en/elasticsearch/reference/current/clear-scroll-api.html</para></summary>
		///<param name = "body">A comma-separated list of scroll IDs to clear if none was specified via the scroll_id parameter</param>
		///<param name = "requestParameters">Request specific configuration such as querystring parameters &amp; request specific connection settings.</param>
		TResponse ClearScroll<TResponse>(PostData body, ClearScrollRequestParameters requestParameters = null)
			where TResponse : class, ITransportResponse, new();
		///<summary>DELETE on /_search/scroll <para>https://www.elastic.co/guide/en/elasticsearch/reference/current/clear-scroll-api.html</para></summary>
		///<param name = "body">A comma-separated list of scroll IDs to clear if none was specified via the scroll_id parameter</param>
		///<param name = "requestParameters">Request specific configuration such as querystring parameters &amp; request specific connection settings.</param>
		Task<TResponse> ClearScrollAsync<TResponse>(PostData body, ClearScrollRequestParameters requestParameters = null, CancellationToken ctx = default)
			where TResponse : class, ITransportResponse, new();
		///<summary>DELETE on /_search/scroll/{scroll_id} <para>https://www.elastic.co/guide/en/elasticsearch/reference/current/clear-scroll-api.html</para></summary>
		///<param name = "scrollId">A comma-separated list of scroll IDs to clear</param>
		///<param name = "body">A comma-separated list of scroll IDs to clear if none was specified via the scroll_id parameter</param>
		///<param name = "requestParameters">Request specific configuration such as querystring parameters &amp; request specific connection settings.</param>
		[Obsolete("Deprecated in version 7.0.0: A scroll id can be quite large and should be specified as part of the body")]
		TResponse ClearScroll<TResponse>(string scrollId, PostData body, ClearScrollRequestParameters requestParameters = null)
			where TResponse : class, ITransportResponse, new();
		///<summary>DELETE on /_search/scroll/{scroll_id} <para>https://www.elastic.co/guide/en/elasticsearch/reference/current/clear-scroll-api.html</para></summary>
		///<param name = "scrollId">A comma-separated list of scroll IDs to clear</param>
		///<param name = "body">A comma-separated list of scroll IDs to clear if none was specified via the scroll_id parameter</param>
		///<param name = "requestParameters">Request specific configuration such as querystring parameters &amp; request specific connection settings.</param>
		[Obsolete("Deprecated in version 7.0.0: A scroll id can be quite large and should be specified as part of the body")]
		Task<TResponse> ClearScrollAsync<TResponse>(string scrollId, PostData body, ClearScrollRequestParameters requestParameters = null, CancellationToken ctx = default)
			where TResponse : class, ITransportResponse, new();
		///<summary>DELETE on /_pit <para>https://www.elastic.co/guide/en/elasticsearch/reference/master/point-in-time-api.html</para></summary>
		///<param name = "body">a point-in-time id to close</param>
		///<param name = "requestParameters">Request specific configuration such as querystring parameters &amp; request specific connection settings.</param>
		TResponse ClosePointInTime<TResponse>(PostData body, ClosePointInTimeRequestParameters requestParameters = null)
			where TResponse : class, ITransportResponse, new();
		///<summary>DELETE on /_pit <para>https://www.elastic.co/guide/en/elasticsearch/reference/master/point-in-time-api.html</para></summary>
		///<param name = "body">a point-in-time id to close</param>
		///<param name = "requestParameters">Request specific configuration such as querystring parameters &amp; request specific connection settings.</param>
		Task<TResponse> ClosePointInTimeAsync<TResponse>(PostData body, ClosePointInTimeRequestParameters requestParameters = null, CancellationToken ctx = default)
			where TResponse : class, ITransportResponse, new();
		///<summary>POST on /_count <para>https://www.elastic.co/guide/en/elasticsearch/reference/master/search-count.html</para></summary>
		///<param name = "body">A query to restrict the results specified with the Query DSL (optional)</param>
		///<param name = "requestParameters">Request specific configuration such as querystring parameters &amp; request specific connection settings.</param>
		TResponse Count<TResponse>(PostData body, CountRequestParameters requestParameters = null)
			where TResponse : class, ITransportResponse, new();
		///<summary>POST on /_count <para>https://www.elastic.co/guide/en/elasticsearch/reference/master/search-count.html</para></summary>
		///<param name = "body">A query to restrict the results specified with the Query DSL (optional)</param>
		///<param name = "requestParameters">Request specific configuration such as querystring parameters &amp; request specific connection settings.</param>
		Task<TResponse> CountAsync<TResponse>(PostData body, CountRequestParameters requestParameters = null, CancellationToken ctx = default)
			where TResponse : class, ITransportResponse, new();
		///<summary>POST on /{index}/_count <para>https://www.elastic.co/guide/en/elasticsearch/reference/master/search-count.html</para></summary>
		///<param name = "index">A comma-separated list of indices to restrict the results</param>
		///<param name = "body">A query to restrict the results specified with the Query DSL (optional)</param>
		///<param name = "requestParameters">Request specific configuration such as querystring parameters &amp; request specific connection settings.</param>
		TResponse Count<TResponse>(string index, PostData body, CountRequestParameters requestParameters = null)
			where TResponse : class, ITransportResponse, new();
		///<summary>POST on /{index}/_count <para>https://www.elastic.co/guide/en/elasticsearch/reference/master/search-count.html</para></summary>
		///<param name = "index">A comma-separated list of indices to restrict the results</param>
		///<param name = "body">A query to restrict the results specified with the Query DSL (optional)</param>
		///<param name = "requestParameters">Request specific configuration such as querystring parameters &amp; request specific connection settings.</param>
		Task<TResponse> CountAsync<TResponse>(string index, PostData body, CountRequestParameters requestParameters = null, CancellationToken ctx = default)
			where TResponse : class, ITransportResponse, new();
		///<summary>PUT on /{index}/_create/{id} <para>https://www.elastic.co/guide/en/elasticsearch/reference/master/docs-index_.html</para></summary>
		///<param name = "index">The name of the index</param>
		///<param name = "id">Document ID</param>
		///<param name = "body">The document</param>
		///<param name = "requestParameters">Request specific configuration such as querystring parameters &amp; request specific connection settings.</param>
		TResponse Create<TResponse>(string index, string id, PostData body, CreateRequestParameters requestParameters = null)
			where TResponse : class, ITransportResponse, new();
		///<summary>PUT on /{index}/_create/{id} <para>https://www.elastic.co/guide/en/elasticsearch/reference/master/docs-index_.html</para></summary>
		///<param name = "index">The name of the index</param>
		///<param name = "id">Document ID</param>
		///<param name = "body">The document</param>
		///<param name = "requestParameters">Request specific configuration such as querystring parameters &amp; request specific connection settings.</param>
		Task<TResponse> CreateAsync<TResponse>(string index, string id, PostData body, CreateRequestParameters requestParameters = null, CancellationToken ctx = default)
			where TResponse : class, ITransportResponse, new();
		///<summary>PUT on /{index}/{type}/{id}/_create <para>https://www.elastic.co/guide/en/elasticsearch/reference/master/docs-index_.html</para></summary>
		///<param name = "index">The name of the index</param>
		///<param name = "type">The type of the document</param>
		///<param name = "id">Document ID</param>
		///<param name = "body">The document</param>
		///<param name = "requestParameters">Request specific configuration such as querystring parameters &amp; request specific connection settings.</param>
		[Obsolete("Deprecated in version 7.0.0: Specifying types in urls has been deprecated")]
		TResponse CreateUsingType<TResponse>(string index, string type, string id, PostData body, CreateRequestParameters requestParameters = null)
			where TResponse : class, ITransportResponse, new();
		///<summary>PUT on /{index}/{type}/{id}/_create <para>https://www.elastic.co/guide/en/elasticsearch/reference/master/docs-index_.html</para></summary>
		///<param name = "index">The name of the index</param>
		///<param name = "type">The type of the document</param>
		///<param name = "id">Document ID</param>
		///<param name = "body">The document</param>
		///<param name = "requestParameters">Request specific configuration such as querystring parameters &amp; request specific connection settings.</param>
		[Obsolete("Deprecated in version 7.0.0: Specifying types in urls has been deprecated")]
		Task<TResponse> CreateUsingTypeAsync<TResponse>(string index, string type, string id, PostData body, CreateRequestParameters requestParameters = null, CancellationToken ctx = default)
			where TResponse : class, ITransportResponse, new();
		///<summary>DELETE on /{index}/_doc/{id} <para>https://www.elastic.co/guide/en/elasticsearch/reference/master/docs-delete.html</para></summary>
		///<param name = "index">The name of the index</param>
		///<param name = "id">The document ID</param>
		///<param name = "requestParameters">Request specific configuration such as querystring parameters &amp; request specific connection settings.</param>
		TResponse Delete<TResponse>(string index, string id, DeleteRequestParameters requestParameters = null)
			where TResponse : class, ITransportResponse, new();
		///<summary>DELETE on /{index}/_doc/{id} <para>https://www.elastic.co/guide/en/elasticsearch/reference/master/docs-delete.html</para></summary>
		///<param name = "index">The name of the index</param>
		///<param name = "id">The document ID</param>
		///<param name = "requestParameters">Request specific configuration such as querystring parameters &amp; request specific connection settings.</param>
		Task<TResponse> DeleteAsync<TResponse>(string index, string id, DeleteRequestParameters requestParameters = null, CancellationToken ctx = default)
			where TResponse : class, ITransportResponse, new();
		///<summary>DELETE on /{index}/{type}/{id} <para>https://www.elastic.co/guide/en/elasticsearch/reference/master/docs-delete.html</para></summary>
		///<param name = "index">The name of the index</param>
		///<param name = "type">The type of the document</param>
		///<param name = "id">The document ID</param>
		///<param name = "requestParameters">Request specific configuration such as querystring parameters &amp; request specific connection settings.</param>
		[Obsolete("Deprecated in version 7.0.0: Specifying types in urls has been deprecated")]
		TResponse DeleteUsingType<TResponse>(string index, string type, string id, DeleteRequestParameters requestParameters = null)
			where TResponse : class, ITransportResponse, new();
		///<summary>DELETE on /{index}/{type}/{id} <para>https://www.elastic.co/guide/en/elasticsearch/reference/master/docs-delete.html</para></summary>
		///<param name = "index">The name of the index</param>
		///<param name = "type">The type of the document</param>
		///<param name = "id">The document ID</param>
		///<param name = "requestParameters">Request specific configuration such as querystring parameters &amp; request specific connection settings.</param>
		[Obsolete("Deprecated in version 7.0.0: Specifying types in urls has been deprecated")]
		Task<TResponse> DeleteUsingTypeAsync<TResponse>(string index, string type, string id, DeleteRequestParameters requestParameters = null, CancellationToken ctx = default)
			where TResponse : class, ITransportResponse, new();
		///<summary>POST on /{index}/_delete_by_query <para>https://www.elastic.co/guide/en/elasticsearch/reference/master/docs-delete-by-query.html</para></summary>
		///<param name = "index">A comma-separated list of index names to search; use the special string `_all` or Indices.All to perform the operation on all indices</param>
		///<param name = "body">The search definition using the Query DSL</param>
		///<param name = "requestParameters">Request specific configuration such as querystring parameters &amp; request specific connection settings.</param>
		TResponse DeleteByQuery<TResponse>(string index, PostData body, DeleteByQueryRequestParameters requestParameters = null)
			where TResponse : class, ITransportResponse, new();
		///<summary>POST on /{index}/_delete_by_query <para>https://www.elastic.co/guide/en/elasticsearch/reference/master/docs-delete-by-query.html</para></summary>
		///<param name = "index">A comma-separated list of index names to search; use the special string `_all` or Indices.All to perform the operation on all indices</param>
		///<param name = "body">The search definition using the Query DSL</param>
		///<param name = "requestParameters">Request specific configuration such as querystring parameters &amp; request specific connection settings.</param>
		Task<TResponse> DeleteByQueryAsync<TResponse>(string index, PostData body, DeleteByQueryRequestParameters requestParameters = null, CancellationToken ctx = default)
			where TResponse : class, ITransportResponse, new();
		///<summary>POST on /_delete_by_query/{task_id}/_rethrottle <para>https://www.elastic.co/guide/en/elasticsearch/reference/current/docs-delete-by-query.html</para></summary>
		///<param name = "taskId">The task id to rethrottle</param>
		///<param name = "requestParameters">Request specific configuration such as querystring parameters &amp; request specific connection settings.</param>
		TResponse DeleteByQueryRethrottle<TResponse>(string taskId, DeleteByQueryRethrottleRequestParameters requestParameters = null)
			where TResponse : class, ITransportResponse, new();
		///<summary>POST on /_delete_by_query/{task_id}/_rethrottle <para>https://www.elastic.co/guide/en/elasticsearch/reference/current/docs-delete-by-query.html</para></summary>
		///<param name = "taskId">The task id to rethrottle</param>
		///<param name = "requestParameters">Request specific configuration such as querystring parameters &amp; request specific connection settings.</param>
		Task<TResponse> DeleteByQueryRethrottleAsync<TResponse>(string taskId, DeleteByQueryRethrottleRequestParameters requestParameters = null, CancellationToken ctx = default)
			where TResponse : class, ITransportResponse, new();
		///<summary>DELETE on /_scripts/{id} <para>https://www.elastic.co/guide/en/elasticsearch/reference/master/modules-scripting.html</para></summary>
		///<param name = "id">Script ID</param>
		///<param name = "requestParameters">Request specific configuration such as querystring parameters &amp; request specific connection settings.</param>
		TResponse DeleteScript<TResponse>(string id, DeleteScriptRequestParameters requestParameters = null)
			where TResponse : class, ITransportResponse, new();
		///<summary>DELETE on /_scripts/{id} <para>https://www.elastic.co/guide/en/elasticsearch/reference/master/modules-scripting.html</para></summary>
		///<param name = "id">Script ID</param>
		///<param name = "requestParameters">Request specific configuration such as querystring parameters &amp; request specific connection settings.</param>
		Task<TResponse> DeleteScriptAsync<TResponse>(string id, DeleteScriptRequestParameters requestParameters = null, CancellationToken ctx = default)
			where TResponse : class, ITransportResponse, new();
		///<summary>HEAD on /{index}/_doc/{id} <para>https://www.elastic.co/guide/en/elasticsearch/reference/master/docs-get.html</para></summary>
		///<param name = "index">The name of the index</param>
		///<param name = "id">The document ID</param>
		///<param name = "requestParameters">Request specific configuration such as querystring parameters &amp; request specific connection settings.</param>
		TResponse DocumentExists<TResponse>(string index, string id, DocumentExistsRequestParameters requestParameters = null)
			where TResponse : class, ITransportResponse, new();
		///<summary>HEAD on /{index}/_doc/{id} <para>https://www.elastic.co/guide/en/elasticsearch/reference/master/docs-get.html</para></summary>
		///<param name = "index">The name of the index</param>
		///<param name = "id">The document ID</param>
		///<param name = "requestParameters">Request specific configuration such as querystring parameters &amp; request specific connection settings.</param>
		Task<TResponse> DocumentExistsAsync<TResponse>(string index, string id, DocumentExistsRequestParameters requestParameters = null, CancellationToken ctx = default)
			where TResponse : class, ITransportResponse, new();
		///<summary>HEAD on /{index}/_source/{id} <para>https://www.elastic.co/guide/en/elasticsearch/reference/master/docs-get.html</para></summary>
		///<param name = "index">The name of the index</param>
		///<param name = "id">The document ID</param>
		///<param name = "requestParameters">Request specific configuration such as querystring parameters &amp; request specific connection settings.</param>
		TResponse SourceExists<TResponse>(string index, string id, SourceExistsRequestParameters requestParameters = null)
			where TResponse : class, ITransportResponse, new();
		///<summary>HEAD on /{index}/_source/{id} <para>https://www.elastic.co/guide/en/elasticsearch/reference/master/docs-get.html</para></summary>
		///<param name = "index">The name of the index</param>
		///<param name = "id">The document ID</param>
		///<param name = "requestParameters">Request specific configuration such as querystring parameters &amp; request specific connection settings.</param>
		Task<TResponse> SourceExistsAsync<TResponse>(string index, string id, SourceExistsRequestParameters requestParameters = null, CancellationToken ctx = default)
			where TResponse : class, ITransportResponse, new();
		///<summary>HEAD on /{index}/{type}/{id}/_source <para>https://www.elastic.co/guide/en/elasticsearch/reference/master/docs-get.html</para></summary>
		///<param name = "index">The name of the index</param>
		///<param name = "type">The type of the document; deprecated and optional starting with 7.0</param>
		///<param name = "id">The document ID</param>
		///<param name = "requestParameters">Request specific configuration such as querystring parameters &amp; request specific connection settings.</param>
		[Obsolete("Deprecated in version 7.0.0: Specifying types in urls has been deprecated")]
		TResponse SourceExistsUsingType<TResponse>(string index, string type, string id, SourceExistsRequestParameters requestParameters = null)
			where TResponse : class, ITransportResponse, new();
		///<summary>HEAD on /{index}/{type}/{id}/_source <para>https://www.elastic.co/guide/en/elasticsearch/reference/master/docs-get.html</para></summary>
		///<param name = "index">The name of the index</param>
		///<param name = "type">The type of the document; deprecated and optional starting with 7.0</param>
		///<param name = "id">The document ID</param>
		///<param name = "requestParameters">Request specific configuration such as querystring parameters &amp; request specific connection settings.</param>
		[Obsolete("Deprecated in version 7.0.0: Specifying types in urls has been deprecated")]
		Task<TResponse> SourceExistsUsingTypeAsync<TResponse>(string index, string type, string id, SourceExistsRequestParameters requestParameters = null, CancellationToken ctx = default)
			where TResponse : class, ITransportResponse, new();
		///<summary>POST on /{index}/_explain/{id} <para>https://www.elastic.co/guide/en/elasticsearch/reference/master/search-explain.html</para></summary>
		///<param name = "index">The name of the index</param>
		///<param name = "id">The document ID</param>
		///<param name = "body">The query definition using the Query DSL</param>
		///<param name = "requestParameters">Request specific configuration such as querystring parameters &amp; request specific connection settings.</param>
		TResponse Explain<TResponse>(string index, string id, PostData body, ExplainRequestParameters requestParameters = null)
			where TResponse : class, ITransportResponse, new();
		///<summary>POST on /{index}/_explain/{id} <para>https://www.elastic.co/guide/en/elasticsearch/reference/master/search-explain.html</para></summary>
		///<param name = "index">The name of the index</param>
		///<param name = "id">The document ID</param>
		///<param name = "body">The query definition using the Query DSL</param>
		///<param name = "requestParameters">Request specific configuration such as querystring parameters &amp; request specific connection settings.</param>
		Task<TResponse> ExplainAsync<TResponse>(string index, string id, PostData body, ExplainRequestParameters requestParameters = null, CancellationToken ctx = default)
			where TResponse : class, ITransportResponse, new();
		///<summary>POST on /_field_caps <para>https://www.elastic.co/guide/en/elasticsearch/reference/master/search-field-caps.html</para></summary>
		///<param name = "body">An index filter specified with the Query DSL</param>
		///<param name = "requestParameters">Request specific configuration such as querystring parameters &amp; request specific connection settings.</param>
		TResponse FieldCapabilities<TResponse>(PostData body, FieldCapabilitiesRequestParameters requestParameters = null)
			where TResponse : class, ITransportResponse, new();
		///<summary>POST on /_field_caps <para>https://www.elastic.co/guide/en/elasticsearch/reference/master/search-field-caps.html</para></summary>
		///<param name = "body">An index filter specified with the Query DSL</param>
		///<param name = "requestParameters">Request specific configuration such as querystring parameters &amp; request specific connection settings.</param>
		Task<TResponse> FieldCapabilitiesAsync<TResponse>(PostData body, FieldCapabilitiesRequestParameters requestParameters = null, CancellationToken ctx = default)
			where TResponse : class, ITransportResponse, new();
		///<summary>POST on /{index}/_field_caps <para>https://www.elastic.co/guide/en/elasticsearch/reference/master/search-field-caps.html</para></summary>
		///<param name = "index">A comma-separated list of index names; use the special string `_all` or Indices.All to perform the operation on all indices</param>
		///<param name = "body">An index filter specified with the Query DSL</param>
		///<param name = "requestParameters">Request specific configuration such as querystring parameters &amp; request specific connection settings.</param>
		TResponse FieldCapabilities<TResponse>(string index, PostData body, FieldCapabilitiesRequestParameters requestParameters = null)
			where TResponse : class, ITransportResponse, new();
		///<summary>POST on /{index}/_field_caps <para>https://www.elastic.co/guide/en/elasticsearch/reference/master/search-field-caps.html</para></summary>
		///<param name = "index">A comma-separated list of index names; use the special string `_all` or Indices.All to perform the operation on all indices</param>
		///<param name = "body">An index filter specified with the Query DSL</param>
		///<param name = "requestParameters">Request specific configuration such as querystring parameters &amp; request specific connection settings.</param>
		Task<TResponse> FieldCapabilitiesAsync<TResponse>(string index, PostData body, FieldCapabilitiesRequestParameters requestParameters = null, CancellationToken ctx = default)
			where TResponse : class, ITransportResponse, new();
		///<summary>GET on /{index}/_doc/{id} <para>https://www.elastic.co/guide/en/elasticsearch/reference/master/docs-get.html</para></summary>
		///<param name = "index">The name of the index</param>
		///<param name = "id">The document ID</param>
		///<param name = "requestParameters">Request specific configuration such as querystring parameters &amp; request specific connection settings.</param>
		TResponse Get<TResponse>(string index, string id, GetRequestParameters requestParameters = null)
			where TResponse : class, ITransportResponse, new();
		///<summary>GET on /{index}/_doc/{id} <para>https://www.elastic.co/guide/en/elasticsearch/reference/master/docs-get.html</para></summary>
		///<param name = "index">The name of the index</param>
		///<param name = "id">The document ID</param>
		///<param name = "requestParameters">Request specific configuration such as querystring parameters &amp; request specific connection settings.</param>
		Task<TResponse> GetAsync<TResponse>(string index, string id, GetRequestParameters requestParameters = null, CancellationToken ctx = default)
			where TResponse : class, ITransportResponse, new();
		///<summary>GET on /_scripts/{id} <para>https://www.elastic.co/guide/en/elasticsearch/reference/master/modules-scripting.html</para></summary>
		///<param name = "id">Script ID</param>
		///<param name = "requestParameters">Request specific configuration such as querystring parameters &amp; request specific connection settings.</param>
		TResponse GetScript<TResponse>(string id, GetScriptRequestParameters requestParameters = null)
			where TResponse : class, ITransportResponse, new();
		///<summary>GET on /_scripts/{id} <para>https://www.elastic.co/guide/en/elasticsearch/reference/master/modules-scripting.html</para></summary>
		///<param name = "id">Script ID</param>
		///<param name = "requestParameters">Request specific configuration such as querystring parameters &amp; request specific connection settings.</param>
		Task<TResponse> GetScriptAsync<TResponse>(string id, GetScriptRequestParameters requestParameters = null, CancellationToken ctx = default)
			where TResponse : class, ITransportResponse, new();
		///<summary>GET on /_script_context <para>https://www.elastic.co/guide/en/elasticsearch/painless/master/painless-contexts.html</para></summary>
		///<param name = "requestParameters">Request specific configuration such as querystring parameters &amp; request specific connection settings.</param>
		///<remarks>Note: Experimental within the Elasticsearch server, this functionality is Experimental and may be changed or removed completely in a future release. Elastic will take a best effort approach to fix any issues, but experimental features are not subject to the support SLA of official GA features. This functionality is subject to potential breaking changes within a minor version, meaning that your referencing code may break when this library is upgraded.</remarks>
		TResponse GetScriptContext<TResponse>(GetScriptContextRequestParameters requestParameters = null)
			where TResponse : class, ITransportResponse, new();
		///<summary>GET on /_script_context <para>https://www.elastic.co/guide/en/elasticsearch/painless/master/painless-contexts.html</para></summary>
		///<param name = "requestParameters">Request specific configuration such as querystring parameters &amp; request specific connection settings.</param>
		///<remarks>Note: Experimental within the Elasticsearch server, this functionality is Experimental and may be changed or removed completely in a future release. Elastic will take a best effort approach to fix any issues, but experimental features are not subject to the support SLA of official GA features. This functionality is subject to potential breaking changes within a minor version, meaning that your referencing code may break when this library is upgraded.</remarks>
		Task<TResponse> GetScriptContextAsync<TResponse>(GetScriptContextRequestParameters requestParameters = null, CancellationToken ctx = default)
			where TResponse : class, ITransportResponse, new();
		///<summary>GET on /_script_language <para>https://www.elastic.co/guide/en/elasticsearch/reference/master/modules-scripting.html</para></summary>
		///<param name = "requestParameters">Request specific configuration such as querystring parameters &amp; request specific connection settings.</param>
		///<remarks>Note: Experimental within the Elasticsearch server, this functionality is Experimental and may be changed or removed completely in a future release. Elastic will take a best effort approach to fix any issues, but experimental features are not subject to the support SLA of official GA features. This functionality is subject to potential breaking changes within a minor version, meaning that your referencing code may break when this library is upgraded.</remarks>
		TResponse GetScriptLanguages<TResponse>(GetScriptLanguagesRequestParameters requestParameters = null)
			where TResponse : class, ITransportResponse, new();
		///<summary>GET on /_script_language <para>https://www.elastic.co/guide/en/elasticsearch/reference/master/modules-scripting.html</para></summary>
		///<param name = "requestParameters">Request specific configuration such as querystring parameters &amp; request specific connection settings.</param>
		///<remarks>Note: Experimental within the Elasticsearch server, this functionality is Experimental and may be changed or removed completely in a future release. Elastic will take a best effort approach to fix any issues, but experimental features are not subject to the support SLA of official GA features. This functionality is subject to potential breaking changes within a minor version, meaning that your referencing code may break when this library is upgraded.</remarks>
		Task<TResponse> GetScriptLanguagesAsync<TResponse>(GetScriptLanguagesRequestParameters requestParameters = null, CancellationToken ctx = default)
			where TResponse : class, ITransportResponse, new();
		///<summary>GET on /{index}/_source/{id} <para>https://www.elastic.co/guide/en/elasticsearch/reference/master/docs-get.html</para></summary>
		///<param name = "index">The name of the index</param>
		///<param name = "id">The document ID</param>
		///<param name = "requestParameters">Request specific configuration such as querystring parameters &amp; request specific connection settings.</param>
		TResponse Source<TResponse>(string index, string id, SourceRequestParameters requestParameters = null)
			where TResponse : class, ITransportResponse, new();
		///<summary>GET on /{index}/_source/{id} <para>https://www.elastic.co/guide/en/elasticsearch/reference/master/docs-get.html</para></summary>
		///<param name = "index">The name of the index</param>
		///<param name = "id">The document ID</param>
		///<param name = "requestParameters">Request specific configuration such as querystring parameters &amp; request specific connection settings.</param>
		Task<TResponse> SourceAsync<TResponse>(string index, string id, SourceRequestParameters requestParameters = null, CancellationToken ctx = default)
			where TResponse : class, ITransportResponse, new();
		///<summary>PUT on /{index}/_doc/{id} <para>https://www.elastic.co/guide/en/elasticsearch/reference/master/docs-index_.html</para></summary>
		///<param name = "index">The name of the index</param>
		///<param name = "id">Document ID</param>
		///<param name = "body">The document</param>
		///<param name = "requestParameters">Request specific configuration such as querystring parameters &amp; request specific connection settings.</param>
		TResponse Index<TResponse>(string index, string id, PostData body, IndexRequestParameters requestParameters = null)
			where TResponse : class, ITransportResponse, new();
		///<summary>PUT on /{index}/_doc/{id} <para>https://www.elastic.co/guide/en/elasticsearch/reference/master/docs-index_.html</para></summary>
		///<param name = "index">The name of the index</param>
		///<param name = "id">Document ID</param>
		///<param name = "body">The document</param>
		///<param name = "requestParameters">Request specific configuration such as querystring parameters &amp; request specific connection settings.</param>
		Task<TResponse> IndexAsync<TResponse>(string index, string id, PostData body, IndexRequestParameters requestParameters = null, CancellationToken ctx = default)
			where TResponse : class, ITransportResponse, new();
		///<summary>POST on /{index}/_doc <para>https://www.elastic.co/guide/en/elasticsearch/reference/master/docs-index_.html</para></summary>
		///<param name = "index">The name of the index</param>
		///<param name = "body">The document</param>
		///<param name = "requestParameters">Request specific configuration such as querystring parameters &amp; request specific connection settings.</param>
		TResponse Index<TResponse>(string index, PostData body, IndexRequestParameters requestParameters = null)
			where TResponse : class, ITransportResponse, new();
		///<summary>POST on /{index}/_doc <para>https://www.elastic.co/guide/en/elasticsearch/reference/master/docs-index_.html</para></summary>
		///<param name = "index">The name of the index</param>
		///<param name = "body">The document</param>
		///<param name = "requestParameters">Request specific configuration such as querystring parameters &amp; request specific connection settings.</param>
		Task<TResponse> IndexAsync<TResponse>(string index, PostData body, IndexRequestParameters requestParameters = null, CancellationToken ctx = default)
			where TResponse : class, ITransportResponse, new();
		///<summary>GET on / <para>https://www.elastic.co/guide/en/elasticsearch/reference/current/index.html</para></summary>
		///<param name = "requestParameters">Request specific configuration such as querystring parameters &amp; request specific connection settings.</param>
		TResponse RootNodeInfo<TResponse>(RootNodeInfoRequestParameters requestParameters = null)
			where TResponse : class, ITransportResponse, new();
		///<summary>GET on / <para>https://www.elastic.co/guide/en/elasticsearch/reference/current/index.html</para></summary>
		///<param name = "requestParameters">Request specific configuration such as querystring parameters &amp; request specific connection settings.</param>
		Task<TResponse> RootNodeInfoAsync<TResponse>(RootNodeInfoRequestParameters requestParameters = null, CancellationToken ctx = default)
			where TResponse : class, ITransportResponse, new();
		///<summary>POST on /_mget <para>https://www.elastic.co/guide/en/elasticsearch/reference/master/docs-multi-get.html</para></summary>
		///<param name = "body">Document identifiers; can be either `docs` (containing full document information) or `ids` (when index is provided in the URL.</param>
		///<param name = "requestParameters">Request specific configuration such as querystring parameters &amp; request specific connection settings.</param>
		TResponse MultiGet<TResponse>(PostData body, MultiGetRequestParameters requestParameters = null)
			where TResponse : class, ITransportResponse, new();
		///<summary>POST on /_mget <para>https://www.elastic.co/guide/en/elasticsearch/reference/master/docs-multi-get.html</para></summary>
		///<param name = "body">Document identifiers; can be either `docs` (containing full document information) or `ids` (when index is provided in the URL.</param>
		///<param name = "requestParameters">Request specific configuration such as querystring parameters &amp; request specific connection settings.</param>
		Task<TResponse> MultiGetAsync<TResponse>(PostData body, MultiGetRequestParameters requestParameters = null, CancellationToken ctx = default)
			where TResponse : class, ITransportResponse, new();
		///<summary>POST on /{index}/_mget <para>https://www.elastic.co/guide/en/elasticsearch/reference/master/docs-multi-get.html</para></summary>
		///<param name = "index">The name of the index</param>
		///<param name = "body">Document identifiers; can be either `docs` (containing full document information) or `ids` (when index is provided in the URL.</param>
		///<param name = "requestParameters">Request specific configuration such as querystring parameters &amp; request specific connection settings.</param>
		TResponse MultiGet<TResponse>(string index, PostData body, MultiGetRequestParameters requestParameters = null)
			where TResponse : class, ITransportResponse, new();
		///<summary>POST on /{index}/_mget <para>https://www.elastic.co/guide/en/elasticsearch/reference/master/docs-multi-get.html</para></summary>
		///<param name = "index">The name of the index</param>
		///<param name = "body">Document identifiers; can be either `docs` (containing full document information) or `ids` (when index is provided in the URL.</param>
		///<param name = "requestParameters">Request specific configuration such as querystring parameters &amp; request specific connection settings.</param>
		Task<TResponse> MultiGetAsync<TResponse>(string index, PostData body, MultiGetRequestParameters requestParameters = null, CancellationToken ctx = default)
			where TResponse : class, ITransportResponse, new();
		///<summary>POST on /_msearch <para>https://www.elastic.co/guide/en/elasticsearch/reference/master/search-multi-search.html</para></summary>
		///<param name = "body">The request definitions (metadata-search request definition pairs), separated by newlines</param>
		///<param name = "requestParameters">Request specific configuration such as querystring parameters &amp; request specific connection settings.</param>
		TResponse MultiSearch<TResponse>(PostData body, MultiSearchRequestParameters requestParameters = null)
			where TResponse : class, ITransportResponse, new();
		///<summary>POST on /_msearch <para>https://www.elastic.co/guide/en/elasticsearch/reference/master/search-multi-search.html</para></summary>
		///<param name = "body">The request definitions (metadata-search request definition pairs), separated by newlines</param>
		///<param name = "requestParameters">Request specific configuration such as querystring parameters &amp; request specific connection settings.</param>
		Task<TResponse> MultiSearchAsync<TResponse>(PostData body, MultiSearchRequestParameters requestParameters = null, CancellationToken ctx = default)
			where TResponse : class, ITransportResponse, new();
		///<summary>POST on /{index}/_msearch <para>https://www.elastic.co/guide/en/elasticsearch/reference/master/search-multi-search.html</para></summary>
		///<param name = "index">A comma-separated list of index names to use as default</param>
		///<param name = "body">The request definitions (metadata-search request definition pairs), separated by newlines</param>
		///<param name = "requestParameters">Request specific configuration such as querystring parameters &amp; request specific connection settings.</param>
		TResponse MultiSearch<TResponse>(string index, PostData body, MultiSearchRequestParameters requestParameters = null)
			where TResponse : class, ITransportResponse, new();
		///<summary>POST on /{index}/_msearch <para>https://www.elastic.co/guide/en/elasticsearch/reference/master/search-multi-search.html</para></summary>
		///<param name = "index">A comma-separated list of index names to use as default</param>
		///<param name = "body">The request definitions (metadata-search request definition pairs), separated by newlines</param>
		///<param name = "requestParameters">Request specific configuration such as querystring parameters &amp; request specific connection settings.</param>
		Task<TResponse> MultiSearchAsync<TResponse>(string index, PostData body, MultiSearchRequestParameters requestParameters = null, CancellationToken ctx = default)
			where TResponse : class, ITransportResponse, new();
		///<summary>POST on /_msearch/template <para>https://www.elastic.co/guide/en/elasticsearch/reference/current/search-multi-search.html</para></summary>
		///<param name = "body">The request definitions (metadata-search request definition pairs), separated by newlines</param>
		///<param name = "requestParameters">Request specific configuration such as querystring parameters &amp; request specific connection settings.</param>
		TResponse MultiSearchTemplate<TResponse>(PostData body, MultiSearchTemplateRequestParameters requestParameters = null)
			where TResponse : class, ITransportResponse, new();
		///<summary>POST on /_msearch/template <para>https://www.elastic.co/guide/en/elasticsearch/reference/current/search-multi-search.html</para></summary>
		///<param name = "body">The request definitions (metadata-search request definition pairs), separated by newlines</param>
		///<param name = "requestParameters">Request specific configuration such as querystring parameters &amp; request specific connection settings.</param>
		Task<TResponse> MultiSearchTemplateAsync<TResponse>(PostData body, MultiSearchTemplateRequestParameters requestParameters = null, CancellationToken ctx = default)
			where TResponse : class, ITransportResponse, new();
		///<summary>POST on /{index}/_msearch/template <para>https://www.elastic.co/guide/en/elasticsearch/reference/current/search-multi-search.html</para></summary>
		///<param name = "index">A comma-separated list of index names to use as default</param>
		///<param name = "body">The request definitions (metadata-search request definition pairs), separated by newlines</param>
		///<param name = "requestParameters">Request specific configuration such as querystring parameters &amp; request specific connection settings.</param>
		TResponse MultiSearchTemplate<TResponse>(string index, PostData body, MultiSearchTemplateRequestParameters requestParameters = null)
			where TResponse : class, ITransportResponse, new();
		///<summary>POST on /{index}/_msearch/template <para>https://www.elastic.co/guide/en/elasticsearch/reference/current/search-multi-search.html</para></summary>
		///<param name = "index">A comma-separated list of index names to use as default</param>
		///<param name = "body">The request definitions (metadata-search request definition pairs), separated by newlines</param>
		///<param name = "requestParameters">Request specific configuration such as querystring parameters &amp; request specific connection settings.</param>
		Task<TResponse> MultiSearchTemplateAsync<TResponse>(string index, PostData body, MultiSearchTemplateRequestParameters requestParameters = null, CancellationToken ctx = default)
			where TResponse : class, ITransportResponse, new();
		///<summary>POST on /_mtermvectors <para>https://www.elastic.co/guide/en/elasticsearch/reference/master/docs-multi-termvectors.html</para></summary>
		///<param name = "body">Define ids, documents, parameters or a list of parameters per document here. You must at least provide a list of document ids. See documentation.</param>
		///<param name = "requestParameters">Request specific configuration such as querystring parameters &amp; request specific connection settings.</param>
		TResponse MultiTermVectors<TResponse>(PostData body, MultiTermVectorsRequestParameters requestParameters = null)
			where TResponse : class, ITransportResponse, new();
		///<summary>POST on /_mtermvectors <para>https://www.elastic.co/guide/en/elasticsearch/reference/master/docs-multi-termvectors.html</para></summary>
		///<param name = "body">Define ids, documents, parameters or a list of parameters per document here. You must at least provide a list of document ids. See documentation.</param>
		///<param name = "requestParameters">Request specific configuration such as querystring parameters &amp; request specific connection settings.</param>
		Task<TResponse> MultiTermVectorsAsync<TResponse>(PostData body, MultiTermVectorsRequestParameters requestParameters = null, CancellationToken ctx = default)
			where TResponse : class, ITransportResponse, new();
		///<summary>POST on /{index}/_mtermvectors <para>https://www.elastic.co/guide/en/elasticsearch/reference/master/docs-multi-termvectors.html</para></summary>
		///<param name = "index">The index in which the document resides.</param>
		///<param name = "body">Define ids, documents, parameters or a list of parameters per document here. You must at least provide a list of document ids. See documentation.</param>
		///<param name = "requestParameters">Request specific configuration such as querystring parameters &amp; request specific connection settings.</param>
		TResponse MultiTermVectors<TResponse>(string index, PostData body, MultiTermVectorsRequestParameters requestParameters = null)
			where TResponse : class, ITransportResponse, new();
		///<summary>POST on /{index}/_mtermvectors <para>https://www.elastic.co/guide/en/elasticsearch/reference/master/docs-multi-termvectors.html</para></summary>
		///<param name = "index">The index in which the document resides.</param>
		///<param name = "body">Define ids, documents, parameters or a list of parameters per document here. You must at least provide a list of document ids. See documentation.</param>
		///<param name = "requestParameters">Request specific configuration such as querystring parameters &amp; request specific connection settings.</param>
		Task<TResponse> MultiTermVectorsAsync<TResponse>(string index, PostData body, MultiTermVectorsRequestParameters requestParameters = null, CancellationToken ctx = default)
			where TResponse : class, ITransportResponse, new();
		///<summary>POST on /_pit <para>https://www.elastic.co/guide/en/elasticsearch/reference/master/point-in-time-api.html</para></summary>
		///<param name = "requestParameters">Request specific configuration such as querystring parameters &amp; request specific connection settings.</param>
		TResponse OpenPointInTime<TResponse>(OpenPointInTimeRequestParameters requestParameters = null)
			where TResponse : class, ITransportResponse, new();
		///<summary>POST on /_pit <para>https://www.elastic.co/guide/en/elasticsearch/reference/master/point-in-time-api.html</para></summary>
		///<param name = "requestParameters">Request specific configuration such as querystring parameters &amp; request specific connection settings.</param>
		Task<TResponse> OpenPointInTimeAsync<TResponse>(OpenPointInTimeRequestParameters requestParameters = null, CancellationToken ctx = default)
			where TResponse : class, ITransportResponse, new();
		///<summary>POST on /{index}/_pit <para>https://www.elastic.co/guide/en/elasticsearch/reference/master/point-in-time-api.html</para></summary>
		///<param name = "index">A comma-separated list of index names to open point in time; use the special string `_all` or Indices.All to perform the operation on all indices</param>
		///<param name = "requestParameters">Request specific configuration such as querystring parameters &amp; request specific connection settings.</param>
		TResponse OpenPointInTime<TResponse>(string index, OpenPointInTimeRequestParameters requestParameters = null)
			where TResponse : class, ITransportResponse, new();
		///<summary>POST on /{index}/_pit <para>https://www.elastic.co/guide/en/elasticsearch/reference/master/point-in-time-api.html</para></summary>
		///<param name = "index">A comma-separated list of index names to open point in time; use the special string `_all` or Indices.All to perform the operation on all indices</param>
		///<param name = "requestParameters">Request specific configuration such as querystring parameters &amp; request specific connection settings.</param>
		Task<TResponse> OpenPointInTimeAsync<TResponse>(string index, OpenPointInTimeRequestParameters requestParameters = null, CancellationToken ctx = default)
			where TResponse : class, ITransportResponse, new();
		///<summary>HEAD on / <para>https://www.elastic.co/guide/en/elasticsearch/reference/current/index.html</para></summary>
		///<param name = "requestParameters">Request specific configuration such as querystring parameters &amp; request specific connection settings.</param>
		TResponse Ping<TResponse>(PingRequestParameters requestParameters = null)
			where TResponse : class, ITransportResponse, new();
		///<summary>HEAD on / <para>https://www.elastic.co/guide/en/elasticsearch/reference/current/index.html</para></summary>
		///<param name = "requestParameters">Request specific configuration such as querystring parameters &amp; request specific connection settings.</param>
		Task<TResponse> PingAsync<TResponse>(PingRequestParameters requestParameters = null, CancellationToken ctx = default)
			where TResponse : class, ITransportResponse, new();
		///<summary>PUT on /_scripts/{id} <para>https://www.elastic.co/guide/en/elasticsearch/reference/master/modules-scripting.html</para></summary>
		///<param name = "id">Script ID</param>
		///<param name = "body">The document</param>
		///<param name = "requestParameters">Request specific configuration such as querystring parameters &amp; request specific connection settings.</param>
		TResponse PutScript<TResponse>(string id, PostData body, PutScriptRequestParameters requestParameters = null)
			where TResponse : class, ITransportResponse, new();
		///<summary>PUT on /_scripts/{id} <para>https://www.elastic.co/guide/en/elasticsearch/reference/master/modules-scripting.html</para></summary>
		///<param name = "id">Script ID</param>
		///<param name = "body">The document</param>
		///<param name = "requestParameters">Request specific configuration such as querystring parameters &amp; request specific connection settings.</param>
		Task<TResponse> PutScriptAsync<TResponse>(string id, PostData body, PutScriptRequestParameters requestParameters = null, CancellationToken ctx = default)
			where TResponse : class, ITransportResponse, new();
		///<summary>PUT on /_scripts/{id}/{context} <para>https://www.elastic.co/guide/en/elasticsearch/reference/master/modules-scripting.html</para></summary>
		///<param name = "id">Script ID</param>
		///<param name = "context">Script context</param>
		///<param name = "body">The document</param>
		///<param name = "requestParameters">Request specific configuration such as querystring parameters &amp; request specific connection settings.</param>
		TResponse PutScript<TResponse>(string id, string context, PostData body, PutScriptRequestParameters requestParameters = null)
			where TResponse : class, ITransportResponse, new();
		///<summary>PUT on /_scripts/{id}/{context} <para>https://www.elastic.co/guide/en/elasticsearch/reference/master/modules-scripting.html</para></summary>
		///<param name = "id">Script ID</param>
		///<param name = "context">Script context</param>
		///<param name = "body">The document</param>
		///<param name = "requestParameters">Request specific configuration such as querystring parameters &amp; request specific connection settings.</param>
		Task<TResponse> PutScriptAsync<TResponse>(string id, string context, PostData body, PutScriptRequestParameters requestParameters = null, CancellationToken ctx = default)
			where TResponse : class, ITransportResponse, new();
		///<summary>POST on /_rank_eval <para>https://www.elastic.co/guide/en/elasticsearch/reference/master/search-rank-eval.html</para></summary>
		///<param name = "body">The ranking evaluation search definition, including search requests, document ratings and ranking metric definition.</param>
		///<param name = "requestParameters">Request specific configuration such as querystring parameters &amp; request specific connection settings.</param>
		///<remarks>Note: Experimental within the Elasticsearch server, this functionality is Experimental and may be changed or removed completely in a future release. Elastic will take a best effort approach to fix any issues, but experimental features are not subject to the support SLA of official GA features. This functionality is subject to potential breaking changes within a minor version, meaning that your referencing code may break when this library is upgraded.</remarks>
		TResponse RankEval<TResponse>(PostData body, RankEvalRequestParameters requestParameters = null)
			where TResponse : class, ITransportResponse, new();
		///<summary>POST on /_rank_eval <para>https://www.elastic.co/guide/en/elasticsearch/reference/master/search-rank-eval.html</para></summary>
		///<param name = "body">The ranking evaluation search definition, including search requests, document ratings and ranking metric definition.</param>
		///<param name = "requestParameters">Request specific configuration such as querystring parameters &amp; request specific connection settings.</param>
		///<remarks>Note: Experimental within the Elasticsearch server, this functionality is Experimental and may be changed or removed completely in a future release. Elastic will take a best effort approach to fix any issues, but experimental features are not subject to the support SLA of official GA features. This functionality is subject to potential breaking changes within a minor version, meaning that your referencing code may break when this library is upgraded.</remarks>
		Task<TResponse> RankEvalAsync<TResponse>(PostData body, RankEvalRequestParameters requestParameters = null, CancellationToken ctx = default)
			where TResponse : class, ITransportResponse, new();
		///<summary>POST on /{index}/_rank_eval <para>https://www.elastic.co/guide/en/elasticsearch/reference/master/search-rank-eval.html</para></summary>
		///<param name = "index">A comma-separated list of index names to search; use the special string `_all` or Indices.All to perform the operation on all indices</param>
		///<param name = "body">The ranking evaluation search definition, including search requests, document ratings and ranking metric definition.</param>
		///<param name = "requestParameters">Request specific configuration such as querystring parameters &amp; request specific connection settings.</param>
		///<remarks>Note: Experimental within the Elasticsearch server, this functionality is Experimental and may be changed or removed completely in a future release. Elastic will take a best effort approach to fix any issues, but experimental features are not subject to the support SLA of official GA features. This functionality is subject to potential breaking changes within a minor version, meaning that your referencing code may break when this library is upgraded.</remarks>
		TResponse RankEval<TResponse>(string index, PostData body, RankEvalRequestParameters requestParameters = null)
			where TResponse : class, ITransportResponse, new();
		///<summary>POST on /{index}/_rank_eval <para>https://www.elastic.co/guide/en/elasticsearch/reference/master/search-rank-eval.html</para></summary>
		///<param name = "index">A comma-separated list of index names to search; use the special string `_all` or Indices.All to perform the operation on all indices</param>
		///<param name = "body">The ranking evaluation search definition, including search requests, document ratings and ranking metric definition.</param>
		///<param name = "requestParameters">Request specific configuration such as querystring parameters &amp; request specific connection settings.</param>
		///<remarks>Note: Experimental within the Elasticsearch server, this functionality is Experimental and may be changed or removed completely in a future release. Elastic will take a best effort approach to fix any issues, but experimental features are not subject to the support SLA of official GA features. This functionality is subject to potential breaking changes within a minor version, meaning that your referencing code may break when this library is upgraded.</remarks>
		Task<TResponse> RankEvalAsync<TResponse>(string index, PostData body, RankEvalRequestParameters requestParameters = null, CancellationToken ctx = default)
			where TResponse : class, ITransportResponse, new();
		///<summary>POST on /_reindex <para>https://www.elastic.co/guide/en/elasticsearch/reference/master/docs-reindex.html</para></summary>
		///<param name = "body">The search definition using the Query DSL and the prototype for the index request.</param>
		///<param name = "requestParameters">Request specific configuration such as querystring parameters &amp; request specific connection settings.</param>
		TResponse ReindexOnServer<TResponse>(PostData body, ReindexOnServerRequestParameters requestParameters = null)
			where TResponse : class, ITransportResponse, new();
		///<summary>POST on /_reindex <para>https://www.elastic.co/guide/en/elasticsearch/reference/master/docs-reindex.html</para></summary>
		///<param name = "body">The search definition using the Query DSL and the prototype for the index request.</param>
		///<param name = "requestParameters">Request specific configuration such as querystring parameters &amp; request specific connection settings.</param>
		Task<TResponse> ReindexOnServerAsync<TResponse>(PostData body, ReindexOnServerRequestParameters requestParameters = null, CancellationToken ctx = default)
			where TResponse : class, ITransportResponse, new();
		///<summary>POST on /_reindex/{task_id}/_rethrottle <para>https://www.elastic.co/guide/en/elasticsearch/reference/master/docs-reindex.html</para></summary>
		///<param name = "taskId">The task id to rethrottle</param>
		///<param name = "requestParameters">Request specific configuration such as querystring parameters &amp; request specific connection settings.</param>
		TResponse ReindexRethrottle<TResponse>(string taskId, ReindexRethrottleRequestParameters requestParameters = null)
			where TResponse : class, ITransportResponse, new();
		///<summary>POST on /_reindex/{task_id}/_rethrottle <para>https://www.elastic.co/guide/en/elasticsearch/reference/master/docs-reindex.html</para></summary>
		///<param name = "taskId">The task id to rethrottle</param>
		///<param name = "requestParameters">Request specific configuration such as querystring parameters &amp; request specific connection settings.</param>
		Task<TResponse> ReindexRethrottleAsync<TResponse>(string taskId, ReindexRethrottleRequestParameters requestParameters = null, CancellationToken ctx = default)
			where TResponse : class, ITransportResponse, new();
		///<summary>POST on /_render/template <para>https://www.elastic.co/guide/en/elasticsearch/reference/current/search-template.html#_validating_templates</para></summary>
		///<param name = "body">The search definition template and its params</param>
		///<param name = "requestParameters">Request specific configuration such as querystring parameters &amp; request specific connection settings.</param>
		TResponse RenderSearchTemplate<TResponse>(PostData body, RenderSearchTemplateRequestParameters requestParameters = null)
			where TResponse : class, ITransportResponse, new();
		///<summary>POST on /_render/template <para>https://www.elastic.co/guide/en/elasticsearch/reference/current/search-template.html#_validating_templates</para></summary>
		///<param name = "body">The search definition template and its params</param>
		///<param name = "requestParameters">Request specific configuration such as querystring parameters &amp; request specific connection settings.</param>
		Task<TResponse> RenderSearchTemplateAsync<TResponse>(PostData body, RenderSearchTemplateRequestParameters requestParameters = null, CancellationToken ctx = default)
			where TResponse : class, ITransportResponse, new();
		///<summary>POST on /_render/template/{id} <para>https://www.elastic.co/guide/en/elasticsearch/reference/current/search-template.html#_validating_templates</para></summary>
		///<param name = "id">The id of the stored search template</param>
		///<param name = "body">The search definition template and its params</param>
		///<param name = "requestParameters">Request specific configuration such as querystring parameters &amp; request specific connection settings.</param>
		TResponse RenderSearchTemplate<TResponse>(string id, PostData body, RenderSearchTemplateRequestParameters requestParameters = null)
			where TResponse : class, ITransportResponse, new();
		///<summary>POST on /_render/template/{id} <para>https://www.elastic.co/guide/en/elasticsearch/reference/current/search-template.html#_validating_templates</para></summary>
		///<param name = "id">The id of the stored search template</param>
		///<param name = "body">The search definition template and its params</param>
		///<param name = "requestParameters">Request specific configuration such as querystring parameters &amp; request specific connection settings.</param>
		Task<TResponse> RenderSearchTemplateAsync<TResponse>(string id, PostData body, RenderSearchTemplateRequestParameters requestParameters = null, CancellationToken ctx = default)
			where TResponse : class, ITransportResponse, new();
		///<summary>POST on /_scripts/painless/_execute <para>https://www.elastic.co/guide/en/elasticsearch/painless/master/painless-execute-api.html</para></summary>
		///<param name = "body">The script to execute</param>
		///<param name = "requestParameters">Request specific configuration such as querystring parameters &amp; request specific connection settings.</param>
		///<remarks>Note: Experimental within the Elasticsearch server, this functionality is Experimental and may be changed or removed completely in a future release. Elastic will take a best effort approach to fix any issues, but experimental features are not subject to the support SLA of official GA features. This functionality is subject to potential breaking changes within a minor version, meaning that your referencing code may break when this library is upgraded.</remarks>
		TResponse ExecutePainlessScript<TResponse>(PostData body, ExecutePainlessScriptRequestParameters requestParameters = null)
			where TResponse : class, ITransportResponse, new();
		///<summary>POST on /_scripts/painless/_execute <para>https://www.elastic.co/guide/en/elasticsearch/painless/master/painless-execute-api.html</para></summary>
		///<param name = "body">The script to execute</param>
		///<param name = "requestParameters">Request specific configuration such as querystring parameters &amp; request specific connection settings.</param>
		///<remarks>Note: Experimental within the Elasticsearch server, this functionality is Experimental and may be changed or removed completely in a future release. Elastic will take a best effort approach to fix any issues, but experimental features are not subject to the support SLA of official GA features. This functionality is subject to potential breaking changes within a minor version, meaning that your referencing code may break when this library is upgraded.</remarks>
		Task<TResponse> ExecutePainlessScriptAsync<TResponse>(PostData body, ExecutePainlessScriptRequestParameters requestParameters = null, CancellationToken ctx = default)
			where TResponse : class, ITransportResponse, new();
		///<summary>POST on /_search/scroll <para>https://www.elastic.co/guide/en/elasticsearch/reference/master/search-request-body.html#request-body-search-scroll</para></summary>
		///<param name = "body">The scroll ID if not passed by URL or query parameter.</param>
		///<param name = "requestParameters">Request specific configuration such as querystring parameters &amp; request specific connection settings.</param>
		TResponse Scroll<TResponse>(PostData body, ScrollRequestParameters requestParameters = null)
			where TResponse : class, ITransportResponse, new();
		///<summary>POST on /_search/scroll <para>https://www.elastic.co/guide/en/elasticsearch/reference/master/search-request-body.html#request-body-search-scroll</para></summary>
		///<param name = "body">The scroll ID if not passed by URL or query parameter.</param>
		///<param name = "requestParameters">Request specific configuration such as querystring parameters &amp; request specific connection settings.</param>
		Task<TResponse> ScrollAsync<TResponse>(PostData body, ScrollRequestParameters requestParameters = null, CancellationToken ctx = default)
			where TResponse : class, ITransportResponse, new();
		///<summary>POST on /_search/scroll/{scroll_id} <para>https://www.elastic.co/guide/en/elasticsearch/reference/master/search-request-body.html#request-body-search-scroll</para></summary>
		///<param name = "scrollId">The scroll ID</param>
		///<param name = "body">The scroll ID if not passed by URL or query parameter.</param>
		///<param name = "requestParameters">Request specific configuration such as querystring parameters &amp; request specific connection settings.</param>
		[Obsolete("Deprecated in version 7.0.0: A scroll id can be quite large and should be specified as part of the body")]
		TResponse Scroll<TResponse>(string scrollId, PostData body, ScrollRequestParameters requestParameters = null)
			where TResponse : class, ITransportResponse, new();
		///<summary>POST on /_search/scroll/{scroll_id} <para>https://www.elastic.co/guide/en/elasticsearch/reference/master/search-request-body.html#request-body-search-scroll</para></summary>
		///<param name = "scrollId">The scroll ID</param>
		///<param name = "body">The scroll ID if not passed by URL or query parameter.</param>
		///<param name = "requestParameters">Request specific configuration such as querystring parameters &amp; request specific connection settings.</param>
		[Obsolete("Deprecated in version 7.0.0: A scroll id can be quite large and should be specified as part of the body")]
		Task<TResponse> ScrollAsync<TResponse>(string scrollId, PostData body, ScrollRequestParameters requestParameters = null, CancellationToken ctx = default)
			where TResponse : class, ITransportResponse, new();
		///<summary>POST on /_search <para>https://www.elastic.co/guide/en/elasticsearch/reference/master/search-search.html</para></summary>
		///<param name = "body">The search definition using the Query DSL</param>
		///<param name = "requestParameters">Request specific configuration such as querystring parameters &amp; request specific connection settings.</param>
		TResponse Search<TResponse>(PostData body, SearchRequestParameters requestParameters = null)
			where TResponse : class, ITransportResponse, new();
		///<summary>POST on /_search <para>https://www.elastic.co/guide/en/elasticsearch/reference/master/search-search.html</para></summary>
		///<param name = "body">The search definition using the Query DSL</param>
		///<param name = "requestParameters">Request specific configuration such as querystring parameters &amp; request specific connection settings.</param>
		Task<TResponse> SearchAsync<TResponse>(PostData body, SearchRequestParameters requestParameters = null, CancellationToken ctx = default)
			where TResponse : class, ITransportResponse, new();
		///<summary>POST on /{index}/_search <para>https://www.elastic.co/guide/en/elasticsearch/reference/master/search-search.html</para></summary>
		///<param name = "index">A comma-separated list of index names to search; use the special string `_all` or Indices.All to perform the operation on all indices</param>
		///<param name = "body">The search definition using the Query DSL</param>
		///<param name = "requestParameters">Request specific configuration such as querystring parameters &amp; request specific connection settings.</param>
		TResponse Search<TResponse>(string index, PostData body, SearchRequestParameters requestParameters = null)
			where TResponse : class, ITransportResponse, new();
		///<summary>POST on /{index}/_search <para>https://www.elastic.co/guide/en/elasticsearch/reference/master/search-search.html</para></summary>
		///<param name = "index">A comma-separated list of index names to search; use the special string `_all` or Indices.All to perform the operation on all indices</param>
		///<param name = "body">The search definition using the Query DSL</param>
		///<param name = "requestParameters">Request specific configuration such as querystring parameters &amp; request specific connection settings.</param>
		Task<TResponse> SearchAsync<TResponse>(string index, PostData body, SearchRequestParameters requestParameters = null, CancellationToken ctx = default)
			where TResponse : class, ITransportResponse, new();
		///<summary>POST on /_search_shards <para>https://www.elastic.co/guide/en/elasticsearch/reference/master/search-shards.html</para></summary>
		///<param name = "requestParameters">Request specific configuration such as querystring parameters &amp; request specific connection settings.</param>
		TResponse SearchShards<TResponse>(SearchShardsRequestParameters requestParameters = null)
			where TResponse : class, ITransportResponse, new();
		///<summary>POST on /_search_shards <para>https://www.elastic.co/guide/en/elasticsearch/reference/master/search-shards.html</para></summary>
		///<param name = "requestParameters">Request specific configuration such as querystring parameters &amp; request specific connection settings.</param>
		Task<TResponse> SearchShardsAsync<TResponse>(SearchShardsRequestParameters requestParameters = null, CancellationToken ctx = default)
			where TResponse : class, ITransportResponse, new();
		///<summary>POST on /{index}/_search_shards <para>https://www.elastic.co/guide/en/elasticsearch/reference/master/search-shards.html</para></summary>
		///<param name = "index">A comma-separated list of index names to search; use the special string `_all` or Indices.All to perform the operation on all indices</param>
		///<param name = "requestParameters">Request specific configuration such as querystring parameters &amp; request specific connection settings.</param>
		TResponse SearchShards<TResponse>(string index, SearchShardsRequestParameters requestParameters = null)
			where TResponse : class, ITransportResponse, new();
		///<summary>POST on /{index}/_search_shards <para>https://www.elastic.co/guide/en/elasticsearch/reference/master/search-shards.html</para></summary>
		///<param name = "index">A comma-separated list of index names to search; use the special string `_all` or Indices.All to perform the operation on all indices</param>
		///<param name = "requestParameters">Request specific configuration such as querystring parameters &amp; request specific connection settings.</param>
		Task<TResponse> SearchShardsAsync<TResponse>(string index, SearchShardsRequestParameters requestParameters = null, CancellationToken ctx = default)
			where TResponse : class, ITransportResponse, new();
		///<summary>POST on /_search/template <para>https://www.elastic.co/guide/en/elasticsearch/reference/current/search-template.html</para></summary>
		///<param name = "body">The search definition template and its params</param>
		///<param name = "requestParameters">Request specific configuration such as querystring parameters &amp; request specific connection settings.</param>
		TResponse SearchTemplate<TResponse>(PostData body, SearchTemplateRequestParameters requestParameters = null)
			where TResponse : class, ITransportResponse, new();
		///<summary>POST on /_search/template <para>https://www.elastic.co/guide/en/elasticsearch/reference/current/search-template.html</para></summary>
		///<param name = "body">The search definition template and its params</param>
		///<param name = "requestParameters">Request specific configuration such as querystring parameters &amp; request specific connection settings.</param>
		Task<TResponse> SearchTemplateAsync<TResponse>(PostData body, SearchTemplateRequestParameters requestParameters = null, CancellationToken ctx = default)
			where TResponse : class, ITransportResponse, new();
		///<summary>POST on /{index}/_search/template <para>https://www.elastic.co/guide/en/elasticsearch/reference/current/search-template.html</para></summary>
		///<param name = "index">A comma-separated list of index names to search; use the special string `_all` or Indices.All to perform the operation on all indices</param>
		///<param name = "body">The search definition template and its params</param>
		///<param name = "requestParameters">Request specific configuration such as querystring parameters &amp; request specific connection settings.</param>
		TResponse SearchTemplate<TResponse>(string index, PostData body, SearchTemplateRequestParameters requestParameters = null)
			where TResponse : class, ITransportResponse, new();
		///<summary>POST on /{index}/_search/template <para>https://www.elastic.co/guide/en/elasticsearch/reference/current/search-template.html</para></summary>
		///<param name = "index">A comma-separated list of index names to search; use the special string `_all` or Indices.All to perform the operation on all indices</param>
		///<param name = "body">The search definition template and its params</param>
		///<param name = "requestParameters">Request specific configuration such as querystring parameters &amp; request specific connection settings.</param>
		Task<TResponse> SearchTemplateAsync<TResponse>(string index, PostData body, SearchTemplateRequestParameters requestParameters = null, CancellationToken ctx = default)
			where TResponse : class, ITransportResponse, new();
		///<summary>POST on /{index}/_termvectors/{id} <para>https://www.elastic.co/guide/en/elasticsearch/reference/master/docs-termvectors.html</para></summary>
		///<param name = "index">The index in which the document resides.</param>
		///<param name = "id">The id of the document, when not specified a doc param should be supplied.</param>
		///<param name = "body">Define parameters and or supply a document to get termvectors for. See documentation.</param>
		///<param name = "requestParameters">Request specific configuration such as querystring parameters &amp; request specific connection settings.</param>
		TResponse TermVectors<TResponse>(string index, string id, PostData body, TermVectorsRequestParameters requestParameters = null)
			where TResponse : class, ITransportResponse, new();
		///<summary>POST on /{index}/_termvectors/{id} <para>https://www.elastic.co/guide/en/elasticsearch/reference/master/docs-termvectors.html</para></summary>
		///<param name = "index">The index in which the document resides.</param>
		///<param name = "id">The id of the document, when not specified a doc param should be supplied.</param>
		///<param name = "body">Define parameters and or supply a document to get termvectors for. See documentation.</param>
		///<param name = "requestParameters">Request specific configuration such as querystring parameters &amp; request specific connection settings.</param>
		Task<TResponse> TermVectorsAsync<TResponse>(string index, string id, PostData body, TermVectorsRequestParameters requestParameters = null, CancellationToken ctx = default)
			where TResponse : class, ITransportResponse, new();
		///<summary>POST on /{index}/_termvectors <para>https://www.elastic.co/guide/en/elasticsearch/reference/master/docs-termvectors.html</para></summary>
		///<param name = "index">The index in which the document resides.</param>
		///<param name = "body">Define parameters and or supply a document to get termvectors for. See documentation.</param>
		///<param name = "requestParameters">Request specific configuration such as querystring parameters &amp; request specific connection settings.</param>
		TResponse TermVectors<TResponse>(string index, PostData body, TermVectorsRequestParameters requestParameters = null)
			where TResponse : class, ITransportResponse, new();
		///<summary>POST on /{index}/_termvectors <para>https://www.elastic.co/guide/en/elasticsearch/reference/master/docs-termvectors.html</para></summary>
		///<param name = "index">The index in which the document resides.</param>
		///<param name = "body">Define parameters and or supply a document to get termvectors for. See documentation.</param>
		///<param name = "requestParameters">Request specific configuration such as querystring parameters &amp; request specific connection settings.</param>
		Task<TResponse> TermVectorsAsync<TResponse>(string index, PostData body, TermVectorsRequestParameters requestParameters = null, CancellationToken ctx = default)
			where TResponse : class, ITransportResponse, new();
		///<summary>POST on /{index}/_update/{id} <para>https://www.elastic.co/guide/en/elasticsearch/reference/master/docs-update.html</para></summary>
		///<param name = "index">The name of the index</param>
		///<param name = "id">Document ID</param>
		///<param name = "body">The request definition requires either `script` or partial `doc`</param>
		///<param name = "requestParameters">Request specific configuration such as querystring parameters &amp; request specific connection settings.</param>
		TResponse Update<TResponse>(string index, string id, PostData body, UpdateRequestParameters requestParameters = null)
			where TResponse : class, ITransportResponse, new();
		///<summary>POST on /{index}/_update/{id} <para>https://www.elastic.co/guide/en/elasticsearch/reference/master/docs-update.html</para></summary>
		///<param name = "index">The name of the index</param>
		///<param name = "id">Document ID</param>
		///<param name = "body">The request definition requires either `script` or partial `doc`</param>
		///<param name = "requestParameters">Request specific configuration such as querystring parameters &amp; request specific connection settings.</param>
		Task<TResponse> UpdateAsync<TResponse>(string index, string id, PostData body, UpdateRequestParameters requestParameters = null, CancellationToken ctx = default)
			where TResponse : class, ITransportResponse, new();
		///<summary>POST on /{index}/{type}/{id}/_update <para>https://www.elastic.co/guide/en/elasticsearch/reference/master/docs-update.html</para></summary>
		///<param name = "index">The name of the index</param>
		///<param name = "type">The type of the document</param>
		///<param name = "id">Document ID</param>
		///<param name = "body">The request definition requires either `script` or partial `doc`</param>
		///<param name = "requestParameters">Request specific configuration such as querystring parameters &amp; request specific connection settings.</param>
		[Obsolete("Deprecated in version 7.0.0: Specifying types in urls has been deprecated")]
		TResponse UpdateUsingType<TResponse>(string index, string type, string id, PostData body, UpdateRequestParameters requestParameters = null)
			where TResponse : class, ITransportResponse, new();
		///<summary>POST on /{index}/{type}/{id}/_update <para>https://www.elastic.co/guide/en/elasticsearch/reference/master/docs-update.html</para></summary>
		///<param name = "index">The name of the index</param>
		///<param name = "type">The type of the document</param>
		///<param name = "id">Document ID</param>
		///<param name = "body">The request definition requires either `script` or partial `doc`</param>
		///<param name = "requestParameters">Request specific configuration such as querystring parameters &amp; request specific connection settings.</param>
		[Obsolete("Deprecated in version 7.0.0: Specifying types in urls has been deprecated")]
		Task<TResponse> UpdateUsingTypeAsync<TResponse>(string index, string type, string id, PostData body, UpdateRequestParameters requestParameters = null, CancellationToken ctx = default)
			where TResponse : class, ITransportResponse, new();
		///<summary>POST on /{index}/_update_by_query <para>https://www.elastic.co/guide/en/elasticsearch/reference/master/docs-update-by-query.html</para></summary>
		///<param name = "index">A comma-separated list of index names to search; use the special string `_all` or Indices.All to perform the operation on all indices</param>
		///<param name = "body">The search definition using the Query DSL</param>
		///<param name = "requestParameters">Request specific configuration such as querystring parameters &amp; request specific connection settings.</param>
		TResponse UpdateByQuery<TResponse>(string index, PostData body, UpdateByQueryRequestParameters requestParameters = null)
			where TResponse : class, ITransportResponse, new();
		///<summary>POST on /{index}/_update_by_query <para>https://www.elastic.co/guide/en/elasticsearch/reference/master/docs-update-by-query.html</para></summary>
		///<param name = "index">A comma-separated list of index names to search; use the special string `_all` or Indices.All to perform the operation on all indices</param>
		///<param name = "body">The search definition using the Query DSL</param>
		///<param name = "requestParameters">Request specific configuration such as querystring parameters &amp; request specific connection settings.</param>
		Task<TResponse> UpdateByQueryAsync<TResponse>(string index, PostData body, UpdateByQueryRequestParameters requestParameters = null, CancellationToken ctx = default)
			where TResponse : class, ITransportResponse, new();
		///<summary>POST on /_update_by_query/{task_id}/_rethrottle <para>https://www.elastic.co/guide/en/elasticsearch/reference/current/docs-update-by-query.html</para></summary>
		///<param name = "taskId">The task id to rethrottle</param>
		///<param name = "requestParameters">Request specific configuration such as querystring parameters &amp; request specific connection settings.</param>
		TResponse UpdateByQueryRethrottle<TResponse>(string taskId, UpdateByQueryRethrottleRequestParameters requestParameters = null)
			where TResponse : class, ITransportResponse, new();
		///<summary>POST on /_update_by_query/{task_id}/_rethrottle <para>https://www.elastic.co/guide/en/elasticsearch/reference/current/docs-update-by-query.html</para></summary>
		///<param name = "taskId">The task id to rethrottle</param>
		///<param name = "requestParameters">Request specific configuration such as querystring parameters &amp; request specific connection settings.</param>
		Task<TResponse> UpdateByQueryRethrottleAsync<TResponse>(string taskId, UpdateByQueryRethrottleRequestParameters requestParameters = null, CancellationToken ctx = default)
			where TResponse : class, ITransportResponse, new();
		///<summary>Rollup APIs</summary>
		LowLevelRollupNamespace Rollup
		{
			get;
		}

		///<summary>Searchable Snapshots APIs</summary>
		LowLevelSearchableSnapshotsNamespace SearchableSnapshots
		{
			get;
		}

		///<summary>Security APIs</summary>
		LowLevelSecurityNamespace Security
		{
			get;
		}

		///<summary>Snapshot APIs</summary>
		LowLevelSnapshotNamespace Snapshot
		{
			get;
		}

		///<summary>Snapshot Lifecycle Management APIs</summary>
		LowLevelSnapshotLifecycleManagementNamespace SnapshotLifecycleManagement
		{
			get;
		}

		///<summary>Sql APIs</summary>
		LowLevelSqlNamespace Sql
		{
			get;
		}

		///<summary>Tasks APIs</summary>
		LowLevelTasksNamespace Tasks
		{
			get;
		}

		///<summary>Transform APIs</summary>
		LowLevelTransformNamespace Transform
		{
			get;
		}

		///<summary>Watcher APIs</summary>
		LowLevelWatcherNamespace Watcher
		{
			get;
		}

		///<summary>XPack APIs</summary>
		LowLevelXPackNamespace XPack
		{
			get;
		}
	}
}